0 CpxTRS
↳1 TrsToWeightedTrsProof (BOTH BOUNDS(ID, ID), 0 ms)
↳2 CpxWeightedTrs
↳3 TypeInferenceProof (BOTH BOUNDS(ID, ID), 4 ms)
↳4 CpxTypedWeightedTrs
↳5 CompletionProof (UPPER BOUND(ID), 0 ms)
↳6 CpxTypedWeightedCompleteTrs
↳7 NarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳8 CpxTypedWeightedCompleteTrs
↳9 CpxTypedWeightedTrsToRntsProof (UPPER BOUND(ID), 0 ms)
↳10 CpxRNTS
↳11 InliningProof (UPPER BOUND(ID), 221 ms)
↳12 CpxRNTS
↳13 SimplificationProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CpxRNTS
↳15 CpxRntsAnalysisOrderProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CpxRNTS
↳17 IntTrsBoundProof (UPPER BOUND(ID), 259 ms)
↳18 CpxRNTS
↳19 IntTrsBoundProof (UPPER BOUND(ID), 10 ms)
↳20 CpxRNTS
↳21 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳22 CpxRNTS
↳23 IntTrsBoundProof (UPPER BOUND(ID), 87 ms)
↳24 CpxRNTS
↳25 IntTrsBoundProof (UPPER BOUND(ID), 23 ms)
↳26 CpxRNTS
↳27 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳28 CpxRNTS
↳29 IntTrsBoundProof (UPPER BOUND(ID), 838 ms)
↳30 CpxRNTS
↳31 IntTrsBoundProof (UPPER BOUND(ID), 161 ms)
↳32 CpxRNTS
↳33 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳34 CpxRNTS
↳35 IntTrsBoundProof (UPPER BOUND(ID), 388 ms)
↳36 CpxRNTS
↳37 IntTrsBoundProof (UPPER BOUND(ID), 44 ms)
↳38 CpxRNTS
↳39 ResultPropagationProof (UPPER BOUND(ID), 0 ms)
↳40 CpxRNTS
↳41 IntTrsBoundProof (UPPER BOUND(ID), 778 ms)
↳42 CpxRNTS
↳43 IntTrsBoundProof (UPPER BOUND(ID), 333 ms)
↳44 CpxRNTS
↳45 FinalProof (⇔, 0 ms)
↳46 BOUNDS(1, EXP)
from(X) → cons(X, n__from(s(X)))
head(cons(X, XS)) → X
2nd(cons(X, XS)) → head(activate(XS))
take(0, XS) → nil
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS)))
sel(0, cons(X, XS)) → X
sel(s(N), cons(X, XS)) → sel(N, activate(XS))
from(X) → n__from(X)
take(X1, X2) → n__take(X1, X2)
activate(n__from(X)) → from(X)
activate(n__take(X1, X2)) → take(X1, X2)
activate(X) → X
from(X) → cons(X, n__from(s(X))) [1]
head(cons(X, XS)) → X [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]
take(0, XS) → nil [1]
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS))) [1]
sel(0, cons(X, XS)) → X [1]
sel(s(N), cons(X, XS)) → sel(N, activate(XS)) [1]
from(X) → n__from(X) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(X) [1]
activate(n__take(X1, X2)) → take(X1, X2) [1]
activate(X) → X [1]
from(X) → cons(X, n__from(s(X))) [1]
head(cons(X, XS)) → X [1]
2nd(cons(X, XS)) → head(activate(XS)) [1]
take(0, XS) → nil [1]
take(s(N), cons(X, XS)) → cons(X, n__take(N, activate(XS))) [1]
sel(0, cons(X, XS)) → X [1]
sel(s(N), cons(X, XS)) → sel(N, activate(XS)) [1]
from(X) → n__from(X) [1]
take(X1, X2) → n__take(X1, X2) [1]
activate(n__from(X)) → from(X) [1]
activate(n__take(X1, X2)) → take(X1, X2) [1]
activate(X) → X [1]
from :: s:0 → n__from:cons:nil:n__take cons :: s:0 → n__from:cons:nil:n__take → n__from:cons:nil:n__take n__from :: s:0 → n__from:cons:nil:n__take s :: s:0 → s:0 head :: n__from:cons:nil:n__take → s:0 2nd :: n__from:cons:nil:n__take → s:0 activate :: n__from:cons:nil:n__take → n__from:cons:nil:n__take take :: s:0 → n__from:cons:nil:n__take → n__from:cons:nil:n__take 0 :: s:0 nil :: n__from:cons:nil:n__take n__take :: s:0 → n__from:cons:nil:n__take → n__from:cons:nil:n__take sel :: s:0 → n__from:cons:nil:n__take → s:0 |
(a) The obligation is a constructor system where every type has a constant constructor,
(b) The following defined symbols do not have to be completely defined, as they can never occur inside other defined symbols:
head
2nd
sel
activate
take
from
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
Runtime Complexity Weighted TRS with Types. The TRS R consists of the following rules:
The TRS has the following type information:
Rewrite Strategy: INNERMOST |
0 => 0
nil => 0
2nd(z) -{ 2 }→ head(XS) :|: z = 1 + X + XS, X >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
2nd(z) -{ 2 }→ head(from(X')) :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0
activate(z) -{ 1 }→ X :|: X >= 0, z = X
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ from(X) :|: z = 1 + X, X >= 0
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(N, XS) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0
sel(z, z') -{ 2 }→ sel(N, take(X1'', X2'')) :|: X1'' >= 0, z = 1 + N, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), N >= 0
sel(z, z') -{ 2 }→ sel(N, from(X'')) :|: z' = 1 + X + (1 + X''), z = 1 + N, X >= 0, X'' >= 0, N >= 0
take(z, z') -{ 1 }→ 0 :|: z' = XS, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + N + activate(XS)) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0
take(z, z') -{ 1 }→ 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ X :|: X >= 0, z = X
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z = 1 + X, X >= 0, X' >= 0, X = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z = 1 + X, X >= 0, X' >= 0, X = X'
from(z) -{ 1 }→ 1 + X :|: X >= 0, z = X
from(z) -{ 1 }→ 1 + X + (1 + (1 + X)) :|: X >= 0, z = X
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(N, XS) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0
sel(z, z') -{ 2 }→ sel(N, take(X1'', X2'')) :|: X1'' >= 0, z = 1 + N, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), N >= 0
sel(z, z') -{ 3 }→ sel(N, 1 + X') :|: z' = 1 + X + (1 + X''), z = 1 + N, X >= 0, X'' >= 0, N >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(N, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), z = 1 + N, X >= 0, X'' >= 0, N >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z' = XS, z = 0, XS >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + N + activate(XS)) :|: z = 1 + N, z' = 1 + X + XS, X >= 0, XS >= 0, N >= 0
take(z, z') -{ 1 }→ 1 + X1 + X2 :|: X1 >= 0, X2 >= 0, z = X1, z' = X2
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
{ from } { head } { take, activate } { 2nd } { sel } |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: ?, size: O(n1) [3 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: ?, size: O(n1) [z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: ?, size: O(n1) [1 + z + 2·z'] activate: runtime: ?, size: O(n1) [1 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 2 }→ head(take(X1', X2')) :|: X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 1 }→ take(X1, X2) :|: X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 2 }→ sel(z - 1, take(X1'', X2'')) :|: X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 1 }→ 1 + X + (1 + (z - 1) + activate(XS)) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] 2nd: runtime: ?, size: O(n1) [2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] 2nd: runtime: O(n1) [19 + 2·z], size: O(n1) [2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] 2nd: runtime: O(n1) [19 + 2·z], size: O(n1) [2·z] |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] 2nd: runtime: O(n1) [19 + 2·z], size: O(n1) [2·z] sel: runtime: ?, size: EXP |
2nd(z) -{ 3 }→ X' :|: z = 1 + X + XS, X >= 0, XS >= 0, XS = 1 + X' + XS', X' >= 0, XS' >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' + (1 + (1 + X'')) = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 4 }→ X1 :|: z = 1 + X + (1 + X'), X >= 0, X' >= 0, X'' >= 0, X' = X'', 1 + X'' = 1 + X1 + XS, X1 >= 0, XS >= 0
2nd(z) -{ 8 + 2·X2' }→ s2 :|: s1 >= 0, s1 <= 1 * X1' + 2 * X2' + 1, s2 >= 0, s2 <= 1 * s1, X2' >= 0, X1' >= 0, X >= 0, z = 1 + X + (1 + X1' + X2')
activate(z) -{ 6 + 2·X2 }→ s'' :|: s'' >= 0, s'' <= 1 * X1 + 2 * X2 + 1, X1 >= 0, X2 >= 0, z = 1 + X1 + X2
activate(z) -{ 1 }→ z :|: z >= 0
activate(z) -{ 2 }→ 1 + X' :|: z - 1 >= 0, X' >= 0, z - 1 = X'
activate(z) -{ 2 }→ 1 + X' + (1 + (1 + X')) :|: z - 1 >= 0, X' >= 0, z - 1 = X'
from(z) -{ 1 }→ 1 + z :|: z >= 0
from(z) -{ 1 }→ 1 + z + (1 + (1 + z)) :|: z >= 0
head(z) -{ 1 }→ X :|: z = 1 + X + XS, X >= 0, XS >= 0
sel(z, z') -{ 1 }→ X :|: z' = 1 + X + XS, X >= 0, z = 0, XS >= 0
sel(z, z') -{ 2 }→ sel(z - 1, XS) :|: z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
sel(z, z') -{ 7 + 2·X2'' }→ sel(z - 1, s') :|: s' >= 0, s' <= 1 * X1'' + 2 * X2'' + 1, X1'' >= 0, X >= 0, X2'' >= 0, z' = 1 + X + (1 + X1'' + X2''), z - 1 >= 0
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X') :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
sel(z, z') -{ 3 }→ sel(z - 1, 1 + X' + (1 + (1 + X'))) :|: z' = 1 + X + (1 + X''), X >= 0, X'' >= 0, z - 1 >= 0, X' >= 0, X'' = X'
take(z, z') -{ 1 }→ 0 :|: z = 0, z' >= 0
take(z, z') -{ 10 + 2·XS }→ 1 + X + (1 + (z - 1) + s) :|: s >= 0, s <= 2 * XS + 1, z' = 1 + X + XS, X >= 0, XS >= 0, z - 1 >= 0
take(z, z') -{ 1 }→ 1 + z + z' :|: z >= 0, z' >= 0
from: runtime: O(1) [1], size: O(n1) [3 + 2·z] head: runtime: O(1) [1], size: O(n1) [z] take: runtime: O(n1) [5 + 2·z'], size: O(n1) [1 + z + 2·z'] activate: runtime: O(n1) [9 + 2·z], size: O(n1) [1 + 2·z] 2nd: runtime: O(n1) [19 + 2·z], size: O(n1) [2·z] sel: runtime: EXP, size: EXP |